Fall-12: Using C++11 to teach Concurrency and Parallelism Concepts

نویسنده

  • Dhananjai M. Rao
چکیده

In our current undergraduate curriculum, the Operating Systems (OS) course provides in-depth understanding of concepts related to concurrency and parallelism. Typically, the laboratory exercises and programming projects in this course are performed in C-language under Linux, an OS that is unfamiliar to many students. Most of the students primarily have only Java experience under WindowsTM. Consequently they experience steep, multifaceted learning curves that distracts them from focusing on core concepts in the course. In an endeavor to address this issue, the Fall 2012 offering of this course, adopted C++11 as the programming language to build on the object oriented skills of the students, utilize Standard Template Library (STL) containers, and algorithms to ease programming while maintaining focus on concepts related to concurrency and parallelism. In addition to leveraging standard C++ threads and parallelized STL algorithms, the course utilized several newly introduced libraries and design patterns to explore modern solutions to many standard multithreading and synchronization issues. This paper and poster presents experiences with using C++11 language and standard libraries to teach several concurrency and parallelism concepts in the OS course. The paper also summarizes data from direct assessments, indirect assessments, and student evaluations which indicates that use of C++11 standard enabled maintaining focus on core concepts, motivated learning of novel object oriented design patterns, and facilitated effective application of concurrency and parallelism concepts. Keywords-Operating System, C++11, Concurrency & Parallelism, Standard Template Library (STL), STL algorithms

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Work in progress - Extending parallelism education to the first year with a bottom-up approach

Parallel programming is quickly becoming a major focus of computer engineering education. This leads to the natural question of how to best introduce aspiring computer engineers to the topic. A bottom-up approach to computer architecture and programming was implemented in an experimental course at Purdue University and was offered to first year students. A study of that course’s effectiveness i...

متن کامل

OpenMP versus threading in C/C++

When comparing OpenMP to other parallel programming models, it is easier to choose between OpenMP and MPI than between OpenMP and POSIX Threads (Pthreads). With languages like C and C++, developers frequently have chosen Pthreads to incorporate parallelism in applications. Few developers are currently using OpenMP C/C++, but they should. We show that converting Genehunter, a hand threaded C pro...

متن کامل

Concurrency and Parallelism as a Medium for Computer Science Concepts

This paper argues that the integration of concurrency and parallelism topics throughout the computer science curriculum need not require a significant reduction in coverage of more “standard” topics. This is accomplished by recognizing that concurrency and parallelism can be used as a medium for learning about other standard topics, rather than as an additional topic to cover. This paper argues...

متن کامل

DGCC: A New Dependency Graph based Concurrency Control Protocol for Multicore Database Systems

Multicore CPUs and large memories are increasingly becoming the norm in modern computer systems. However, current database management systems (DBMSs) are generally ineffective in exploiting the parallelism of such systems. In particular, contention can lead to a dramatic fall in performance. In this paper, we propose a new concurrency control protocol called DGCC (Dependency Graph based Concurr...

متن کامل

Performance Evaluation of Programming Paradigms and Languages Using Multithreading on Digital Image Processing

We present a comparative performance evaluation of different programming paradigms and languages using multithreaded programming. We compare the procedural and object-oriented (OO) paradigms, as well as the C++ and Java languages, regarding both performance and programmability. The comparison is made upon sequential and parallel image convolution implementations based on those paradigms and lan...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013